﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Common;

namespace ASG.CodeGenerator.SQL
{
    public abstract class DatabaseCode<TableType, ColumnType, ProcedureType, ProcedureParameterType, ParameterType> : ASG.CodeGenerator.Core.TypeCode
        where TableType : TableCode<ColumnType, ParameterType>
        where ColumnType : ColumnCode<ParameterType>
        where ProcedureType : ProcedureCode<ProcedureParameterType, ParameterType>
        where ProcedureParameterType : ParameterCode<ParameterType>
        where ParameterType : DbParameter
    {
        public abstract List<TableType> Tables
        {
            get;
        }

        public abstract List<ProcedureType> Procedures
        {
            get;
        }
    }
}
